$(function () {
    initCate()

    // 初始化富文本编辑器
    initEditor()

    function initCate() {
        $.ajax({
            method: 'get',
            url: '/my/article/cates',
            success: function (res) {
                if (res.status != 0) return layui.layer.msg('初始化文章分类失败！')
                // 使用模板引擎 渲染到页面上 
                let htmlStr = template('tpl-cate', res)
                $('[name=cate_id]').html(htmlStr)

                layui.form.render()
            }
        })
    }
    // 图片封面剪裁部分 
    // 1. 初始化图片裁剪器
    var $image = $('#image')

    // 2. 裁剪选项
    var options = {
        aspectRatio: 400 / 280,
        preview: '.img-preview'
    }

    // 3. 初始化裁剪区域
    $image.cropper(options)

    // 上传照片 模拟点击按钮 隐藏文本框点击事件 
    $('#btnChooseImage').on('click', function () {
        $('#coverFile').click()
    })
    // 监听文件框状态 
    $('#coverFile').on('change', function (e) {
        console.log('11');
        let files = e.target.files
        if (files.length == 0) return
        // 设置虚拟路径 
        var newImgURL = URL.createObjectURL(files[0])
        $image
            .cropper('destroy')      // 销毁旧的裁剪区域
            .attr('src', newImgURL)  // 重新设置图片路径
            .cropper(options)        // 重新初始化裁剪区域
    })
    // 发布文章操作 定义状态区分点击的是 发布按钮 还是存为草稿
    let art_state = '已发布'
    // 给存入草稿绑定点击事件 改变状态变量 
    $('#btnSave2').on('click', function () {
        art_state = '草稿'
    })

    // 为表单绑定 submit 提交事件 
    $('#form-pub').on('submit', function (e) {
        e.preventDefault()
        // 基于form表单(this)  创建 formdata对象 
        let fd = new FormData(this);
        fd.append('state', art_state)
        // 创建画布 
        $image
            .cropper('getCroppedCanvas', {
                width: 400,
                height: 280
            })
            .toBlob(function (blob) { // 将 Canvas 画布上的内容，转化为文件对象
                // 得到文件对象后，进行后续的操作
                fd.append('cover_img', blob)
                // 发起请求 
                publishArticle(fd)
            })
    })
    function publishArticle(fd) {
        $.ajax({
            method: 'post',
            url: '/my/article/add',
            data: fd,
            // formData 上传数据 必须写的数据 
            contentType: false,
            processData: false,
            success: function (res) {
                if (res.status != 0) return layui.layer.msg(res.message)
                layui.layer.msg(res.message)
                // 发布文章成功 跳转到自己发布的文章 
                location.href = '/article/art_list.html'
            }
        })
    }
})